草庐IT

TypeScript 运算符

全部标签

c++ - 为类重载 C++ 插入运算符 (<<)

我正在尝试编写一个重载插入运算符的类,但在我的头文件中出现错误。Overloaded'operator这是我的代码:.h文件ostream&operator.cpp文件ostream&operator我正在学习一本教科书,这是他们用作示例的内容,但它对我不起作用。有什么建议吗? 最佳答案 你可能把你的operator在类声明中。这意味着它需要一个额外的隐藏参数(this参数)。您需要将它放在任何类声明之外。 关于c++-为类重载C++插入运算符( https://stack

c++ - dynamic_cast 是否在重载的运算符删除中工作?

我遇到了这个:structBase{void*operatornew(size_t);voidoperatordelete(void*);virtual~Base(){}//(p);if(dynamic_cast(pB)!=0){/*...NOTreachinghere?...*/}free(p);}现在如果我们这样做,Base*p=newDerived;deletep;令人惊讶的是,conditioninsidetheBase::deleteisnotsatisfied我做错了什么吗?或者从void*进行转换会丢失Derived*的信息? 最佳答案

c++ - C++ 运算符的性能

C++中的算术运算符之间是否存在任何性能差异,或者它们的运行速度都一样快?例如。“++”比“+=1”快吗?“+=10000”呢?如果数字是float而不是整数,是否会有显着差异?“*”是否比“+”花费的时间明显更长?我尝试对“++”、“+=1”和“+=10000”各执行10亿次。奇怪的是,时钟周期数(根据time.h)实际上是违反直觉的。人们可能会认为,如果其中任何一个最快,则为“++”,其次是“+=1”,然后是“+=10000”,但数据显示出轻微的相反趋势。这种差异在100亿次操作上更为明显。这都是整数。我是学科学计算的,所以想测试算子的性能。例如,如果任何运算符的操作时间与输入呈线

c++ - C/C++ 数学运算顺序

所以我知道C++有运算符优先级,而且intx=++i+i++;未定义,因为pre++和post++处于同一级别,因此无法判断哪个先计算。但我想知道的是,如果inti=1/2/3;未定义。我问的原因是因为有多种方法可以查看(1/2)/3或1/(2/3)。我的猜测是这是未定义的行为,但我想确认一下。 最佳答案 如果您查看C++operatorprecedenceandassociativity,您会看到除法运算符是从左到右结合的,这意味着这将被计算为(1/2)/3,因为:Operatorsthatareinthesamecell(the

c++ - 了解 '&' 运算符

据我所知,“&”运算符返回内存中操作数的基址。让我们想象以下场景(如在我的机器上):sizeof(int)=4字节sizeof(float)=4字节sizeof(char)=1字节现在,如果我这样写:voidmain(){inti=5411;int*ip=&i;char*c=&i;printf("%d",*ip);printf("%c",*c);}第一个printf()应该给我5411。说到第二个printf(),i的基地址包含10101001(对于char类型指针,高8位=1个字节)。因此*c应该给我169,当转换为%c时,它是一个无效字符。但是编译器给我“#”或其他一些有效的输出。

c++ - C++ 中 ## 运算符的用途是什么,它叫什么?

我查看了DirectX2009年3月SDK附带的DXUTCore项目,注意到他们没有制作普通的访问器方法,而是使用宏来创建通用访问器,类似于以下内容:#defineGET_ACCESSOR(x,y)inlinexGet##y(){DXUTLockl;returnm_state.m_##y;};...GET_ACCESSOR(WCHAR*,WindowTitle);##运算符似乎只是将第二个参数的文本插入到宏中,以创建一个使用该文本对变量进行操作的函数。这是C++中的标准(即不是Microsoft特定的)吗?它的使用被认为是好的做法吗?而且,那个运算符叫什么?

c++ - NOT 运算符的意义何在?

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭9年前。目前正在使用thistutorial检查C++.它解释了!NOT运算符有点,但我不认为我完全理解我为什么要使用它。有人可以解释一下吗?

c++ - 重载 += 或 -= 运算符的好处

最近我做了一个作业,关于使用模板重载复杂类的基本功能主义者(+,-,conjugate...)。我不得不费点力气才能找到正确的返回类型(转换为更高的类型),但最后,我让它工作得很好。这就是我的类(class)的样子-templateclasscomplex_t{private:Treal;Timaginary;public:complex_t(TX,TY){real=X;imaginary=Y;}}但我没有得到满分,因为我没有实现+=、-=等运算符。为什么实现这些运算符很重要?这样做是否真的有任何特别的好处?谁能分享一些想法?提前致谢 最佳答案

c++ - C/C++ 宏,用于在不使用三元运算符的情况下查找两个数的最大值

我遇到了一个面试问题,内容如下:“在不使用标准库或三元运算符的情况下编写一个简单的C/C++宏来查找两个数中的最大值”。我需要你的帮助来解决这个问题。我知道这很简单,但我找不到。所以,把它张贴在这里。#include#definemax(x,y)/*LOGICHERE*/usingnamespacestd;voidmain(){inta=98453;intb=66394;cout 最佳答案 使用bool运算得到0或1,然后将它们相加:#definemax(x,y)(((int)((x)

c++ - C 和 C++ 中 sizeof 运算符的不同输出

C和C++中sizeof()运算符的不同输出。在C中:intmain(){printf("%zu\n",sizeof(1==1));return0;}输出:4在C++中:intmain(){std::cout输出:1问题:为什么输出不同?sizeof是否独立于操作系统或编译器?是否取决于语言? 最佳答案 根据N1570草稿(c11):6.5.9相等运算符The==(equalto)and!=(notequalto)operatorsareanalogoustotherelationaloperatorsexceptfortheirl